Grokking Simplicity
完全に理解する、という意味
完全理解 simplicity
関数プログラミングを、アカデミックな要素抜きに実践的に解説するといったもの
大変わかりやすいmiyamonz.icon
2~5年目のプログラマを想定してる
元々、関数型プログラミングを好んでいる人なら、知ってる話もあるかも?
しかし、諸々の概念がよくできているように思う
pure, inpure, side-effectという名前じゃなくて、actions, calculations, dataに分けるとか
@kawasima: 二次会では言えなかったですが、@qsona さんのComposed Methodパターンのところ、抽象レベルに応じてfunction分けるってのが「Grokking Simplicity」に詳しく書いてあって、良いfunctionの切り出し方の基準になるかも、と思いました。 https://pbs.twimg.com/media/FSledu1WIAI4TcS.jpg
@kawasima: @j5ik2o @a_suenami @Tanaka9230 リッチヒッキーの理解者と思われるEric Normandの著書「Grokking Simplicity」の中では、こう定義されていますね。あと「事実」を表すものなんでイミュータブル。 https://pbs.twimg.com/media/FSX726WaAAEBgUU.jpg
How Functional Programming Can Improve Testing, Reuse, and Maintenance in Your Current Codebase
作者の動画
以降のfirst class functionあたりはもう身体化するレベルで知ってるので退屈だな
「mapとかfilterとかの旨味がわからない初学者へ何を説明すべきか?」という観点で読むなら、価値は結構あるが
自分でこの説明を全部考えるのむずい
しかも、その理由説明にStratified Designが関わっている
Stratified Designって多分
Stratified Designで検索するのと
あと古典だとたぶんlispのあの本に書いてあったよな
Stratified Designという名前だったかは分からんが